home *** CD-ROM | disk | FTP | other *** search
- 10000 '*************************************************************
- 10010 '***** PC-GOLF THE GOLFER's PROGRAM PC-GOLF *****
- 10020 '***** Version 1.4 (C) 1983,1984,1985 Ed Chandler *****
- 10030 '*************************************************************
- 10040 '+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- 10050 ' 5. GET the golfer's score sheet
- 10060 '+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- 10070 CLS:PRINT MNU5$
- 10072 IF ROS=0 THEN 10080
- 10075 DEF SEG=&H40:I%=PEEK(&H17):I%=I% OR 32:POKE &H17,I% 'num lock on
- 10080 IF PACT>0 THEN 10120
- 10090 PRINT:PRINT"There are no player's scores yet, because"
- 10100 PRINT"no rounds have been tallied."
- 10110 GOSUB 580:GOTO 530 'back to main
- 10120 PRINT:PRINT SPC(7);"PC-GOLF's Score Sheets":PRINT
- 10130 PRINT SPC(3)"1. Select a player."
- 10140 PRINT SPC(3);MNURT$:PRINT
- 10150 M1$="key":M2$="(1 or M) ":GOSUB 570
- 10160 IF KB=1 THEN 10190
- 10170 IF KB$="M" OR KB$="m" THEN 530 'back to main
- 10180 GOSUB 610:GOTO 10070
- 10190 CLS:PRINT MNU5$:X=1:GOSUB 550 'show roster
- 10200 IF PR=0 THEN GOSUB 590:RETURN
- 10210 PRINT:LINE INPUT;"ENTER the line number of the player you want. ";KB$
- 10220 KB=VAL(KB$):IF KB>0 AND KB<=PMAX AND TMP(KB)=KB THEN 10250
- 10230 GOSUB 611:GOTO 10190
- 10240 '+++++ PDIR.DAT PLAYER.DAT GCDIR.DAT +++++
- 10250 GOSUB 660:GET #4,KB:GOSUB 670:GET #5,KB
- 10260 PRN=VAL(E4$):GOSUB 650:GOSUB 655:GET #2,PRN:GET #3,PRN:CLOSE #2,#3,#4,#5
- 10270 E5=CVI(E5$):J5=CVI(J5$):SSW=0 'score & putt counts,set up flag
- 10280 '+++++ all data is in buffers #2,#3,#4,#5 +++++
- 10290 IF A5$="V" THEN 10320 'ok data is valid
- 10300 PRINT:PRINT"There are no putts or scores in the data bank for ";B4$;
- 10310 GOSUB 580:GOTO 10070
- 10320 CLS:PRINT SPC(7);"PC-GOLF's Score Sheets":PRINT
- 10330 MNU1$="1. Review the scoring tables and bar charts.":PRINT SPC(3);MNU1$
- 10340 MNU2$="2. Review the putting tables and bar charts.":PRINT SPC(3);MNU2$
- 10350 PRINT SPC(3);MNURT$:PRINT
- 10360 M1$="key":M2$="(1,2 or M) ":GOSUB 570:TSW=KB
- 10370 IF KB=1 THEN 10410
- 10380 IF KB=2 THEN 10440
- 10390 IF KB$="M" OR KB$="m" THEN 10070
- 10400 GOSUB 610:GOTO 10320
- 10410 IF E5<>0 THEN 10480
- 10420 PRINT:PRINT"There are no scores in the data bank for ";B4$
- 10430 GOSUB 580:GOTO 10320
- 10440 IF J5<>0 THEN 10480
- 10450 PRINT:PRINT"There are no putts in the data bank for ";B4$
- 10460 GOSUB 580:GOTO 10320
- 10470 '+++++ put scores in arrays +++++
- 10480 IF SSW =1 THEN 11020 'tra if set up already
- 10490 N=1:FOR I=1 TO 18
- 10500 PS(I)=CVI(MID$(G5$,N,2)) 'gross scores
- 10510 IF E5<>0 THEN TAVG!(I)=PS(I)/E5 'avg gr scores
- 10520 IF F4$="m" THEN CP(I)=VAL(MID$(E2$,I,1)) 'course pars
- 10530 IF F4$="f" THEN CP(I)=VAL(MID$(H2$,I,1)) 'course pars
- 10540 PM!(I)=TAVG!(I)-CP(I) 'plus/minus avg gr scores
- 10550 TMP(I)=VAL(MID$(G2$,N,2)) 'hole hcaps
- 10560 GS(I)=I 'hole #'s & index for hole #'s
- 10570 N=N+2:NEXT I
- 10580 '+++++ AVG SCORES +++++
- 10590 IF E5=0 THEN 10650
- 10600 FOR I=1 TO 18:TX(I)=PS(I):TX!(I)=TAVG!(I):NEXT I
- 10610 T=E5:T3!=3:T4!=4:T5!=5:M1$=" AVERAGE SCORES ":M2$="Avg. score "
- 10620 GOSUB 11690 'avg scores display
- 10630 '+++++
- 10640 'sort for hole handicaps
- 10650 PRINT:PRINT"Calculating - Standby -":LOCATE CSRLIN-2,POS(0),0
- 10660 FOR I=1 TO 18:IX(I)=I:KEE(I)=TMP(I):NEXT 'set key for h'caps
- 10670 GOSUB 11610:FOR I=1 TO 18:IK(I)=IX(I):NEXT 'save HCAP index
- 10680 GOSUB 580
- 10690 '+++++ put putts in arrays +++++
- 10700 IF J5=0 THEN 10900 '# putts
- 10710 N=1:FOR I=1 TO 18
- 10720 PSP(I)=CVI(MID$(L5$,N,2)) 'actual putts
- 10730 PAVG!(I)=PSP(I)/J5 'avg gr putts
- 10740 PMP!(I)=PAVG!(I)-2 'plus/minus avg gr putts
- 10750 IF F4$="m" THEN CP(I)=VAL(MID$(E2$,I,1)) 'course pars
- 10760 IF F4$="f" THEN CP(I)=VAL(MID$(H2$,I,1)) 'course pars
- 10770 TMP(I)=VAL(MID$(G2$,N,2)) 'hole hcaps
- 10780 GS(I)=I 'hole #'s & index for hole #'s
- 10790 N=N+2:NEXT I
- 10800 '+++++ AVERAGE PUTTS +++++
- 10810 FOR I=1 TO 18:TX(I)=PSP(I):TX!(I)=PAVG!(I):NEXT I
- 10820 T=J5:T3!=PR!:T4!=T3!:T5!=T3!:M1$=" AVERAGE PUTTS ":M2$="Avg. putts "
- 10830 GOSUB 11690 'avg putts display
- 10840 'sort for plus/minus putts
- 10850 PRINT:PRINT"Calculating - Standby -":LOCATE CSRLIN-2,POS(0),0
- 10860 FOR I=1 TO 18:IX(I)=I:KEE!(I)=INT(PMP!(I)*100)*100+I:NEXT
- 10870 GOSUB 11650:FOR I=1 TO 18:IY(I)=IX(I):NEXT 'save +/- index
- 10880 GOSUB 580
- 10890 '+++++ potpourri +++++
- 10900 GOSUB 12150 'potpourri
- 10910 '+++++
- 10920 IF E5=0 THEN 11000
- 10930 'sort for plus/minus scores
- 10940 PRINT:PRINT"Calculating - Standby -":LOCATE CSRLIN-2,POS(0),0
- 10950 FOR I=1 TO 18:IX(I)=I:KEE!(I)=INT(PM!(I)*100)*100+I:NEXT
- 10960 GOSUB 11650:FOR I=1 TO 18:DD(I)=0:IJ(I)=IX(I):NEXT 'save +/- index
- 10970 H=VAL(D4$):DH!=0:FOR I=1 TO 18:DH!=DH!+PM!(IJ(I))
- 10980 IF DH!>H THEN DD(IJ(I))=I 'set for double diamond flag
- 10990 NEXT I
- 11000 GOSUB 580:SSW=1 'flag set up done
- 11010 '+++++
- 11020 IF TSW=2 THEN 11320 'scores or putts
- 11030 CLS:PRINT MNU1$:PRINT:PRINT SPC(8)"PC-GOLF's Score Sheets":PRINT
- 11040 PRINT"1. Hole Handicap sequence table"
- 11050 PRINT"2. Plus/Minus sequence table"
- 11060 PRINT"3. Average Scores bar chart"
- 11070 PRINT"4. Hole Handicap bar chart"
- 11080 PRINT"5. Low-to-High Score bar chart"
- 11082 PRINT"6. Scoring Trend chart"
- 11090 PRINT"7. Average Scores"
- 11100 PRINT"8. Potpourri"
- 11110 PRINT"9. Personal Best"
- 11120 PRINT MNURT$:PRINT
- 11130 M1$="key":M2$="(1,2,3,4,5,6,7,8,9 or M) ":GOSUB 570
- 11140 M1$="Avg.score":FOR I=1 TO 18:KEE!(I)=TAVG!(I):TX!(I)=PM!(I):NEXT I
- 11150 IF KB=1 THEN GOSUB 12430:GOTO 11020
- 11160 IF KB=2 THEN GOSUB 12550:GOTO 11020
- 11170 M1$="Average Score":FOR I=1 TO 18:TX!(I)=PM!(I):IX(I)=GS(I):NEXT I
- 11180 T=E5
- 11190 IF KB=3 THEN PTYP$="HS":GOSUB 12780:GOTO 11020
- 11200 M1$="Hole Handicap":FOR I=1 TO 18:IX(I)=IK(I):NEXT I
- 11210 IF KB=4 THEN PTYP$="HC":GOSUB 12780:GOTO 11020
- 11220 M1$="Low-to-High Score":FOR I=1 TO 18:IX(I)=IJ(I):NEXT I
- 11230 IF KB=5 THEN PTYP$="PM":GOSUB 12780:GOTO 11020
- 11232 IF KB<>6 THEN 11240
- 11239 T=1:M1$="Scoring":GOSUB 13640:GOTO 11020
- 11240 FOR I=1 TO 18:TX(I)=PS(I):TX!(I)=TAVG!(I):NEXT I
- 11250 T=E5:T3!=3:T4!=4:T5!=5:M1$=" AVERAGE SCORES ":M2$="Avg. score "
- 11260 IF KB=7 THEN GOSUB 11690:GOSUB 590:GOTO 11020
- 11270 IF KB=8 THEN GOSUB 12150:GOSUB 590:GOTO 11020
- 11280 IF KB=9 THEN GOSUB 13240:GOSUB 590:GOTO 11020
- 11290 IF KB$="M" OR KB$="m" THEN 10320
- 11300 GOSUB 610:GOTO 11020
- 11310 '+++++
- 11320 CLS:PRINT MNU2$:PRINT:PRINT SPC(8)"PC-GOLF's Score Sheets":PRINT
- 11330 PRINT"1. Hole Handicap sequence table"
- 11340 PRINT"2. Plus/Minus sequence table"
- 11350 PRINT"3. Average Putts bar chart"
- 11360 PRINT"4. Hole Handicap bar chart"
- 11370 PRINT"5. Low-to-High Putts bar chart"
- 11372 PRINT"6. Putting Trend chart"
- 11380 PRINT"7. Average Putts"
- 11390 PRINT"8. Potpourri"
- 11400 PRINT"9. Personal Best"
- 11410 PRINT MNURT$:PRINT
- 11420 M1$="key":M2$="(1,2,3,4,5,6,7,8,9 or M) ":GOSUB 570
- 11430 M1$="Avg.putt ":FOR I=1 TO 18:KEE!(I)=PAVG!(I):TX!(I)=PMP!(I):NEXT I
- 11440 IF KB=1 THEN GOSUB 12430:GOTO 11020
- 11450 IF KB=2 THEN GOSUB 12550:GOTO 11020
- 11460 M1$="Average Putts":FOR I=1 TO 18:TX!(I)=PMP!(I):IX(I)=GS(I):NEXT I
- 11470 T=J5
- 11480 IF KB=3 THEN PTYP$="HP":GOSUB 12780:GOTO 11020
- 11490 M1$="Hole Handicap":FOR I=1 TO 18:IX(I)=IK(I):NEXT I
- 11500 IF KB=4 THEN PTYP$="HC":GOSUB 12780:GOTO 11020
- 11510 M1$="Low-to-High Putts":FOR I=1 TO 18:IX(I)=IY(I):NEXT I
- 11520 IF KB=5 THEN PTYP$="PM":GOSUB 12780:GOTO 11020
- 11522 IF KB<>6 THEN 11530
- 11526 T=2:M1$="Putting":GOSUB 13640:GOTO 11020
- 11530 FOR I=1 TO 18:TX(I)=PSP(I):TX!(I)=PAVG!(I):NEXT I
- 11540 T=J5:T3!=PR!:T4!=T3!:T5!=T3!:M1$=" AVERAGE PUTTS ":M2$="Avg. putts "
- 11550 IF KB=7 THEN GOSUB 11690:GOSUB 590:GOTO 11020
- 11560 IF KB=8 THEN GOSUB 12150:GOSUB 590:GOTO 11020
- 11570 IF KB=9 THEN GOSUB 13240:GOSUB 590:GOTO 11020
- 11580 IF KB$="M" OR KB$="m" THEN 10320
- 11590 GOSUB 610:GOTO 11320
- 11600 '+++++ sort sub +++++
- 11610 FOR I=1 TO 17:FOR J=I+1 TO 18:IF KEE(I)<=KEE(J) THEN 11630
- 11620 T=KEE(I):KEE(I)=KEE(J):KEE(J)=T:T=IX(I):IX(I)=IX(J):IX(J)=T
- 11630 NEXT J:NEXT I:RETURN
- 11640 '+++++ sort sub +++++
- 11650 FOR I=1 TO 17:FOR J=I+1 TO 18:IF KEE!(I)<=KEE!(J) THEN 11670
- 11660 T!=KEE!(I):KEE!(I)=KEE!(J):KEE!(J)=T!:T=IX(I):IX(I)=IX(J):IX(J)=T
- 11670 NEXT J:NEXT I:RETURN
- 11680 '+++++ performance for par 3,4,5's +++++
- 11690 P3=0:P4=0:P5=0:P3ACT=0:P4ACT=0:P5ACT=0
- 11700 FOR I=1 TO 18
- 11710 IF CP(I)=3 THEN P3=P3+1:P3ACT=P3ACT+TX(I) 'sum of actuals
- 11720 IF CP(I)=4 THEN P4=P4+1:P4ACT=P4ACT+TX(I)
- 11730 IF CP(I)=5 THEN P5=P5+1:P5ACT=P5ACT+TX(I)
- 11740 NEXT
- 11750 '+++++ t=# rounds tallied
- 11760 P3AVG!=0:IF P3<>0 THEN P3AVG!=P3ACT/(P3*T)
- 11770 P4AVG!=0:IF P4<>0 THEN P4AVG!=P4ACT/(P4*T)
- 11780 P5AVG!=0:IF P5<>0 THEN P5AVG!=P5ACT/(P5*T)
- 11790 P3DEL!=0:IF P3<>0 THEN P3DEL!=P3AVG!-T3!
- 11800 P4DEL!=0:IF P4<>0 THEN P4DEL!=P4AVG!-T4!
- 11810 P5DEL!=0:IF P5<>0 THEN P5DEL!=P5AVG!-T5!
- 11820 '+++++ AVERAGE SCORES +++++
- 11830 CLS:PRINT"Scoring Table for ";B4$:PRINT"Home Course - ";B2$
- 11840 PRINT"with ";T;" rounds tallied." '# rounds
- 11850 PRINT SPC(30);:COLOR 0,15,0:PRINT M1$;:COLOR 7,0,0
- 11860 PRINT SPC(5);GREG$:PRINT
- 11870 COLOR 0,15,0:PRINT" Front Nine ";:COLOR 7,0,0:PRINT SPC(1);
- 11880 FOR I=1 TO 9:PRINT USING"## ";I;
- 11890 IF I=3 OR I=6 THEN PRINT SPC(4)
- 11900 NEXT:PRINT
- 11910 PRINT"PAR";SPC(10);:FOR I=1 TO 9:PRINT USING "## ";CP(I);
- 11920 IF I=3 OR I=6 THEN PRINT SPC(4);
- 11930 NEXT:PRINT
- 11940 PRINT M2$;:FOR I=1 TO 9:PRINT USING "#.# ";TX!(I);
- 11950 IF I=3 OR I=6 THEN PRINT SPC(4)
- 11960 NEXT:PRINT:PRINT:PRINT
- 11970 COLOR 0,15,0:PRINT" Back Nine ";:COLOR 7,0,0:PRINT SPC(1);
- 11980 FOR I=10 TO 18:PRINT USING"## ";I;
- 11990 IF I=12 OR I=15 THEN PRINT SPC(4)
- 12000 NEXT:PRINT
- 12010 PRINT"PAR";SPC(10);:FOR I=10 TO 18:PRINT USING "## ";CP(I);
- 12020 IF I=12 OR I=15 THEN PRINT SPC(4);
- 12030 NEXT:PRINT
- 12040 PRINT M2$;:FOR I=10 TO 18:PRINT USING "#.# ";TX!(I);
- 12050 IF I=12 OR I=15 THEN PRINT SPC(4)
- 12060 NEXT:PRINT:PRINT:PRINT
- 12070 COLOR 0,15,0:PRINT" PAR ";:COLOR 7,0,0:PRINT SPC(12);
- 12080 PRINT"par 3's";SPC(12);"par 4's";SPC(12);"par 5's"
- 12090 PRINT M2$;SPC(7)
- 12100 PRINT USING "#.# ";P3AVG!;P4AVG!;P5AVG!
- 12110 PRINT "Plus/Minus";SPC(8)
- 12120 PRINT USING "+#.# ";P3DEL!;P4DEL!;P5DEL!
- 12130 RETURN
- 12140 '+++++ POTPOURRI +++++
- 12150 CLS:PRINT"Scoring Table for ";B4$:PRINT"Home Course - ";B2$
- 12160 T=E5:IF T=0 THEN T=J5
- 12170 PRINT '"with ";T;" rounds tallied.":PRINT
- 12180 PRINT SPC(12):COLOR 0,15,0:PRINT" POTPOURRI ";:COLOR 7,0,0
- 12190 PRINT SPC(10)GREG$:PRINT
- 12200 IF E5=0 THEN 12310
- 12210 T=0:T!=0:FOR I=1 TO 40 STEP 2:J=CVI(MID$(F5$,I,2)):T!=T!+J
- 12220 IF J<>0 THEN T=T+1
- 12230 NEXT I
- 12240 PRINT"Your gross scores for the last ";T;" rounds.":PRINT
- 12250 X=0:FOR I=41-2*T TO 39 STEP 2:PRINT USING" ###";CVI(MID$(F5$,I,2));
- 12260 X=X+1:IF X=10 AND X<E5 THEN PRINT
- 12270 NEXT I:PRINT:PRINT
- 12280 PRINT USING" the average gross score is ###.#";T!/T
- 12290 PRINT SPC(7)"the lowest gross score to date is ";CVI(I5$):PRINT
- 12300 '+++++
- 12310 IF J5=0 THEN 12410
- 12320 T=0:T!=0:FOR I=1 TO 40 STEP 2:J=CVI(MID$(K5$,I,2)):T!=T!+J
- 12330 IF J<>0 THEN T=T+1
- 12340 NEXT I
- 12350 PRINT"Your putting scores for the last ";T;" rounds.":PRINT
- 12360 X=0:FOR I=41-2*T TO 39 STEP 2:PRINT USING" ###";CVI(MID$(K5$,I,2));
- 12370 X=X+1:IF X=10 AND X<J5 THEN PRINT
- 12380 NEXT I:PRINT:PRINT
- 12390 PRINT USING" the average putting score is ##.#";T!/T
- 12400 PRINT SPC(5)"the lowest putting score to date is ";CVI(N5$)
- 12410 RETURN
- 12420 '+++++ show avg scores in handicap sort +++++
- 12430 CLS:PRINT SPC(3):COLOR 0,15,0:PRINT " Handicap Sequence ";:COLOR 7,0,0
- 12440 PRINT SPC(3);B4$:PRINT SPC(6);GREG$;SPC(11);B2$
- 12450 PRINT"PAR";SPC(4);"Hole #";SPC(3);
- 12460 COLOR 0,15,0:PRINT" H,cap ";:COLOR 7,0,0
- 12470 PRINT SPC(2);M1$;SPC(5);"+/-"
- 12480 FOR I=1 TO 18
- 12490 PRINT USING"## ";CP(IK(I));GS(IK(I));TMP(IK(I));
- 12500 PRINT USING"#.## ";KEE!(IK(I));
- 12510 PRINT USING"+#.##";TX!(IK(I))
- 12520 NEXT
- 12530 GOSUB 590:RETURN
- 12540 '+++++ show avg scores in +/- sort +++++
- 12550 CLS:PRINT SPC(3):COLOR 0,15,0:PRINT " Plus/Minus Sequence ";:COLOR 7,0,0
- 12560 PRINT SPC(1);B4$:PRINT SPC(6);GREG$;SPC(11);B2$
- 12570 PRINT"PAR";SPC(4);"Hole #";SPC(4);
- 12580 PRINT"H,cap";SPC(3);M1$;SPC(4)
- 12590 COLOR 0,15,0:PRINT" +/- ":COLOR 7,0,0
- 12600 IF TSW=2 THEN 12660
- 12610 FOR I=1 TO 18
- 12620 PRINT USING"## ";CP(IJ(I));GS(IJ(I));TMP(IJ(I));
- 12630 PRINT USING"#.## ";KEE!(IJ(I));
- 12640 PRINT USING"+#.##";TX!(IJ(I))
- 12650 NEXT:GOTO 12710
- 12660 FOR I=1 TO 18
- 12670 PRINT USING"## ";CP(IY(I));GS(IY(I));TMP(IY(I));
- 12680 PRINT USING"#.## ";KEE!(IY(I));
- 12690 PRINT USING"+#.##";TX!(IY(I))
- 12700 NEXT
- 12710 GOSUB 590:RETURN
- 12720 '+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- 12730 'PLOT Subroutine
- 12740 'ENTER ptyp$=PM,HC,or [HS or HP] - sort is +/-, Hcap, or Hole #
- 12750 ' M1$=title, tx!(i)=PM!(i) or PMP!(i)
- 12760 ' ix(i)=index
- 12770 '+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- 12780 WIDTH 80:SCREEN 2
- 12790 LOCATE 1,16:PRINT M1$;
- 12800 PRINT" Bar Chart for ";B4$
- 12810 PRINT SPC(18)"With ";T;" rounds tallied. ";GREG$
- 12812 PRINT SPC(22) B2$
- 12820 H0=56:H1=H0:H2=H1:HINC=16 'init values
- 12830 V0=159:V0!=159:VINC!=32
- 12840 D$=CHR$(46)+" "+CHR$(46)+" ":F$=" ":G$=CHR$(124):V!=-1
- 12850 SCREEN 2
- 12860 '+++++ print horiz lines and +/- #'s
- 12870 FOR I=24 TO 4 STEP -4
- 12880 LOCATE I,4:PRINT USING"+# ";V!;
- 12890 FOR J=1 TO 18
- 12900 IF V!<0 THEN IF V!<TX!(IX(J)) THEN PRINT D$; ELSE PRINT F$;
- 12902 IF V!=0 THEN PRINT "____";
- 12910 IF V!>0 THEN IF V!>TX!(IX(J)) THEN PRINT D$; ELSE PRINT F$;
- 12920 NEXT J:V!=V!+1:NEXT I
- 12930 '+++++ print HOLE # below zero line
- 12940 LOCATE 21,8
- 12950 FOR I=1 TO 18:LOCATE 21,POS(0):Y=POS(0)
- 12960 IF PTYP$="HC" THEN PRINT USING"## ";GS(IX(I)); 'hole hcaps
- 12970 IF PTYP$<>"HC" THEN PRINT USING"## ";GS(IX(I)); 'hole #s
- 12980 IF PTYP$="HS" AND DD(I)<>0 THEN LOCATE 23,Y:PRINT CHR$(4);CHR$(4);" ";
- 12990 NEXT I
- 13000 ' *** character fill bars on chart
- 13010 H1=8:HAF$="..":FUL$="::":BAR$=FUL$:BHAF$="`'"
- 13020 FOR I=1 TO 18:NBRCV=ABS(INT(TX!(IX(I))*4)):K=0
- 13030 SLIN=INT(20-(TX!(IX(I))*4)):IF SLIN>20 THEN SLIN=20
- 13040 T4!=TX!(IX(I)):T5!=INT(TX!(IX(I))/.25)
- 13050 IF T4!<>.25*T5! THEN BAR$=HAF$:NBRCV=NBRCV+1:K=1
- 13060 IF T4!<0 AND BAR$=HAF$ THEN BAR$=FUL$:NBRCV=NBRCV-1
- 13070 IF T4!<0 THEN BAR$=FUL$
- 13080 FOR J=SLIN+1 TO SLIN+NBRCV
- 13082 JJ=J: IF JJ>24 THEN JJ=24
- 13090 LOCATE JJ,H1:PRINT BAR$;:BAR$=FUL$:NEXT J:IF T4!>=0 THEN 13110
- 13100 IF K=1 THEN LOCATE CSRLIN,H1:PRINT BHAF$;
- 13102 LOCATE 20,H1-1:PRINT GS(IX(I))
- 13110 H1=H1+4:NEXT I
- 13160 FOR I=5 TO 23:LOCATE I,7:PRINT G$:LOCATE I,79:PRINT G$:NEXT
- 13170 LOCATE 25,16,0
- 13180 PRINT"PRESS the space bar to continue.";
- 13190 KB$=INKEY$:IF KB$<>"" THEN 13190
- 13200 KB$=INKEY$:IF KB$<>" " THEN 13200
- 13210 LOCATE CSRLIN,POS(0),1
- 13220 SCREEN 0:RETURN
- 13230 '+++++ PERSONAL BEST +++++
- 13240 CLS:KB$=B4$:GOSUB 700:PRINT SPC(12):COLOR 0,15,0
- 13242 PRINT" - PERSONAL BEST - ";KB$;" ":COLOR 7,0,0
- 13250 LOCATE 1,67:PRINT GREG$:PRINT
- 13260 CF=0:CB=0:AF=0:AB=0:PF=0:PB=0
- 13270 FOR I=1 TO 9:CF=CF+CP(I):CB=CB+CP(I+9):NEXT I
- 13280 FOR I=1 TO 18:TX(I)=VAL(MID$(H5$,I,1)):IX(I)=VAL(MID$(M5$,I,1)):NEXT I
- 13290 FOR I=1 TO 9:AF=AF+TX(I):AB=AB+TX(I+9):PF=PF+IX(I):PB=PB+IX(I+9):NEXT I
- 13300 IF E5<>0 THEN YT=1
- 13310 IF J5<>0 THEN YT=2
- 13320 IF E5<>0 AND J5<>0 THEN YT=3
- 13330 PRINT "HOLE #";SPC(4);
- 13340 FOR I=1 TO 9 STEP 3:PRINT USING "###";I;I+1;I+2;:PRINT SPC(1):NEXT I
- 13350 PRINT "Front";
- 13360 FOR I=10 TO 18 STEP 3:PRINT USING "###";I;I+1;I+2;:PRINT SPC(1):NEXT I
- 13370 PRINT "Back":PRINT SPC(41);"nine";SPC(30);"nine":PRINT "par";SPC(8);
- 13380 FOR I=1 TO 9 STEP 3:PRINT CP(I);CP(I+1);CP(I+2);SPC(1):NEXT I:PRINT CF;
- 13390 FOR I=10 TO 18 STEP 3:PRINT USING "###";CP(I);CP(I+1);CP(I+2);
- 13400 PRINT SPC(1):NEXT I:PRINT CB:PRINT
- 13410 IF YT=2 THEN 13450 ELSE COLOR 0,15,0:PRINT "low scores ";:COLOR 7,0,0
- 13420 FOR I=1 TO 9 STEP 3:PRINT TX(I);TX(I+1);TX(I+2);SPC(1);:NEXT I:PRINT AF;
- 13430 FOR I=10 TO 18 STEP 3:PRINT USING "###";TX(I);TX(I+1);TX(I+2);
- 13440 PRINT SPC(1):NEXT I:PRINT AB
- 13450 IF YT=1 THEN 13500 ELSE PRINT:COLOR 0,15,0:PRINT "low putts ";:COLOR 7,0,0
- 13460 FOR I=1 TO 9 STEP 3:PRINT IX(I);IX(I+1);IX(I+2);SPC(1);:NEXT I
- 13470 PRINT USING" ## ";PF;
- 13480 FOR I=10 TO 18 STEP 3:PRINT USING "###";IX(I);IX(I+1);IX(I+2);
- 13490 PRINT SPC(1);:NEXT I:PRINT USING" ##";PB
- 13500 PRINT:PRINT SPC(12)"Best low scores at: ";B2$
- 13510 IF YT<>2 THEN PRINT SPC(12):PRINT USING" ### full rounds.";E5
- 13520 IF YT<>1 THEN PRINT SPC(12):PRINT USING" ### putting rounds.";J5
- 13530 LOCATE CSRLIN+1,15:COLOR 0,15,0
- 13540 IF YT<>2 THEN PRINT" Low score total is ";AF+AB
- 13550 LOCATE CSRLIN+1,15:IF YT<>1 THEN PRINT" Low putt total is ";PF+PB
- 13580 COLOR 7,0,0:RETURN
- 13590 '+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- 13600 'PLOT TRENDS Subroutine
- 13610 'ENTER M1$=title, TMP(i)=scores<=20 to be plotted or zero's
- 13620 ' Max range of scores is 20 strokes(low to high)
- 13630 '+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- 13640 N=1:FOR I=1 TO 20:TX(I)=0
- 13642 IF T=1 THEN T1(I)=CVI(MID$(F5$,N,2))
- 13643 IF T=2 THEN T1(I)=CVI(MID$(K5$,N,2))
- 13645 N=N+2:NEXT I
- 13648 FOR I=1 TO 20:IF T1(I)<>0 THEN 13655
- 13650 NEXT I:I=1
- 13655 K=1:FOR J=I TO 20:TX(K)=T1(J):K=K+1:NEXT J
- 13712 L=999:H=0:FOR I=1 TO 20
- 13714 IF TX(I)=0 THEN 13722
- 13716 IF TX(I)>H THEN H=TX(I)
- 13718 IF TX(I)<L THEN L=TX(I)
- 13720 NEXT I
- 13722 M=L:N=I-1:D2=(H-L+1):IF D2<=20 THEN 13728 'limit test
- 13724 H=L+19:FOR I=1 TO N:IF TX(I)>H THEN TX(I)=H
- 13726 NEXT I:D2=20
- 13728 D1=(20-D2)/2:WIDTH 80:SCREEN 2
- 13740 LOCATE 1,16:PRINT M1$;:PRINT" Trend Chart for ";B4$
- 13750 PRINT SPC(18)"For the last ";N;" rounds. ";GREG$
- 13752 PRINT SPC(22) B2$
- 13760 D$=CHR$(46)+" ":G$=CHR$(124)
- 13770 '+++++ print horiz lines and scores
- 13780 K=4:X=23:Y=4:FOR I=X TO Y STEP -1
- 13790 IF I<=X-D1 AND I>X-D1-D2 THEN LOCATE I,K:PRINT USING"### ";M;:M=M+1
- 13800 LOCATE I,K+5:FOR J=1 TO 20:PRINT D$;
- 13810 NEXT J:NEXT I
- 13820 '+++++ print round #
- 13830 LOCATE X+1-D1,K+4:FOR I=1 TO N:PRINT USING"## ";I;:NEXT I
- 13840 '+++++ draw lines
- 13850 H=K+5:H0=H*8-4
- 13860 V=X-D1:V0=(V-(TX(1)-L))*8-4
- 13870 FOR I=1 TO N
- 13880 M=TX(I)-L
- 13915 LOCATE V-M,H:PRINT "*"
- 13920 H=H+3:FOR Z=1 TO 50:NEXT Z
- 13930 NEXT I
- 13940 FOR I=Y TO X:LOCATE I,K+3:PRINT G$:LOCATE I,K+64:PRINT G$:NEXT
- 13950 LOCATE 25,16,0:PRINT"PRESS the space bar to continue.";
- 13960 KB$=INKEY$:IF KB$<>"" THEN 13960
- 13970 KB$=INKEY$:IF KB$<>" " THEN 13970
- 13980 LOCATE CSRLIN,POS(0),1:SCREEN 0:RETURN
- 13990 '+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- 14000 '+++++ GRUNT WORK
- 14010 DELETE 490-9999
- 14020 SAVE"b:perform.asc",A
- 14030 RUN"b:main.bas"
- 15000 'for chain delete
- 000 '+++++ GRUNT WORK
- 14010 DELETE 490-9999
- 14020 SAVE"b:perform.asc",A
- 14030 RUN"b:main.bas"
- 15000 'for chain dele